import pandas as pd
import os
import sys

# 添加项目根目录到Python路径
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

# 导入项目模块
from data.fetcher import FinancialDataFetcher

def check_raw_data():
    """检查600900的原始数据，分析科目名称"""
    print("\n===== 检查600900原始数据 =====")
    
    # 初始化数据获取器
    fetcher = FinancialDataFetcher()
    
    # 获取600900的原始数据
    stock_code = "600900"
    report_type = "年报"
    
    print(f"获取股票 {stock_code} 的{report_type}数据...")
    raw_data = fetcher.fetch_balance_sheet(stock_code, report_type)
    
    if raw_data is None or raw_data.empty:
        print("获取数据失败")
        return
    
    print(f"成功获取数据! 数据形状: {raw_data.shape}")
    
    # 分析数据结构
    print("\n数据结构分析:")
    print(f"列名: {list(raw_data.columns)}")
    print(f"索引类型: {raw_data.index.dtype}")
    print(f"前10个索引: {raw_data.index[:10].tolist()}")
    
    # 检查是否为转置格式
    is_transposed = False
    if raw_data.index.dtype == 'object':
        # 检查索引是否包含常见科目名称
        common_subjects = ["流动资产", "货币资金", "应收账款", "存货", "固定资产", "短期借款"]
        for subj in common_subjects:
            matching_indices = [idx for idx in raw_data.index if subj in str(idx)]
            if matching_indices:
                is_transposed = True
                print(f"找到科目 '{subj}' 在索引中: {matching_indices}")
    
    print(f"数据格式判断: {'转置格式' if is_transposed else '非转置格式'}")
    
    # 如果是转置格式，提取所有科目名称
    if is_transposed:
        print("\n所有科目名称:")
        for idx in raw_data.index:
            print(f"- {idx}")
    else:
        # 如果不是转置格式，尝试找出科目所在的列或行
        print("\n尝试找出科目所在的列或行...")
        # 检查第一行是否包含科目名称
        if raw_data.shape[0] > 0:
            print("第一行数据:")
            print(raw_data.iloc[0])
    
    # 保存原始数据到CSV，方便查看
    output_path = "600900_raw_data.csv"
    raw_data.to_csv(output_path, encoding='utf-8-sig')
    print(f"\n原始数据已保存到: {output_path}")

if __name__ == "__main__":
    check_raw_data()